package com.ztesoft.web.syncbaseinfo.service;

import com.ztesoft.framework.exception.BaseAppException;
import com.ztesoft.web.baseconfig.db.po.DmPlanPO;
import com.ztesoft.web.common.customdb.dao.dto.DmTaskStageDto;
import com.ztesoft.web.common.vo.DbBaseInfoVO;
import com.ztesoft.web.common.vo.DbLinkInstanceVO;
import com.ztesoft.web.common.vo.DbUserInfoVO;
import com.ztesoft.web.common.vo.HostConnInfoVO;



/**
 * @Description 
 * @author lin.weibin@zte.com.cn
 * @date 2015年8月6日 下午8:21:02
 * @since 1.0
 *
 */
public interface BaseInfoService {

	
	public int getColumnType(int sourceDataId, String columnName) throws BaseAppException;
    
    /**
     * 获取获取系统模板类LEVEL为0记录信息
     * @param moduleId
     * @return	系统模板对象
     */
	public int getRootLevelSysModule(int moduleId);
    

	/**
	 * 主机信息、连接方式——公共查询方法
	 */
	public HostConnInfoVO queryHostConn(Integer hostId) throws BaseAppException;
	
	public HostConnInfoVO getHostConn(String ip);
	/**
	 * 请求同步主机数据信息
	 * @param hostId	null/value
	 */
	public void addHostBaseInfo(Integer hostId);
	
	/**
	 * 删除主机信息和缓存
	 * @param hostId
	 */
	public void deleteHostInfo(Integer hostId);
	
	public void addDBBaseInfo(Integer dbBaseId);

	public void deleteDBInfo(Integer dbBaseId);
	

	/**
	 * 数据库信息、连接方式——公共查询方法
	 */
	public DbBaseInfoVO queryDBInfo(Integer dbBaseId) throws BaseAppException;

	public DbUserInfoVO queryDBInfo(Integer dbBaseId, String dbUserName) throws BaseAppException;
	
	/**
	 * 数据库信息配置
	 * @param dbLinkId	数据库实例信息ID
	 * @param dbUserName 数据库用户名
	 * @return {数据库类型(小写)，数据库连接，用户名，密码,数据库名}
	 * @throws BaseAppException
	 */
	public String[] getDbConfig(Integer dbLinkId, String dbUserName) throws BaseAppException;

	/**
	 * 外部监测接收暂停、取消判断处理
	 * @param taskStagePO
	 * @param planPO
	 * @return
	 */
	public String doCheck(DmTaskStageDto taskStagePO, DmPlanPO planPO);

	/**
	 * 获取实例信息
	 */
	public DbLinkInstanceVO queryDBInstance(Integer dbLinkId) throws BaseAppException;

	HostConnInfoVO qryHostConn(Integer dbLinkId) throws BaseAppException;
}
